package com.rw.coco.service;

import com.rw.coco.api.data.PersistenceMapper;
import com.rw.coco.api.data.model.AccountModel;
import com.rw.coco.api.data.model.ObModel;
import com.rw.coco.handler.message.event.CocoMessageEvent;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 群旁观操作Service
 */
public class ObService extends BaseService {
    public ObService(PersistenceMapper mapper) {
        super(mapper);
    }

    public ObService(CocoMessageEvent cocoMessageEvent) {
        super(cocoMessageEvent);
    }

    /**
     * 根据群ID，查询群内所有的用户列表
     *
     * @param groupId 群ID
     * @return 用户列表
     */
    public List<AccountModel> getObAccount(String groupId) {
        // 查询旁观列表，并取出所有的用户ID
        List<ObModel> groupObList = obMapper.getGroupObList(groupId);
        List<String> accountIdList = groupObList.stream()
                .map(ObModel::getAccountId)
                .collect(Collectors.toList());

        // 查询所有的用户ID，并返回
        return accountMapper.getAccountList(accountIdList);
    }
}
